﻿using Authority.DataTransferObject.Routing;
using Authority.IServices.Model.Routing;

namespace Authority.IServices
{
    /// <summary>
    /// 路由权限服务
    /// </summary>
    public interface IRoutingAuthorityService
    {
        /// <summary>
        /// 新增路由权限
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task AddAsync(AddRoutingModel model);

        /// <summary>
        /// 修改路由权限
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task EditAsync(EditRoutingModel model);

        /// <summary>
        /// 删除路由权限
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteAsync(Guid id);

        /// <summary>
        /// 获取路由权限
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<List<RoutingAuthorityDTO>> GetAsync(List<Guid> id);

        /// <summary>
        /// 获取一个层级
        /// </summary>
        /// <param name="parentId"></param>
        /// <returns></returns>
        Task<List<RoutingAuthorityListDTO>> GetOneLevelAsync(Guid? parentId);

        /// <summary>
        /// 获取树
        /// </summary>
        /// <returns></returns>
        Task<List<RoutingTreeDTO>> GetTreeAsync(Guid subsystemID);

    }
}